package com.xinshujia.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xinshujia.entity.FunctionEntity;
import com.xinshujia.entity.ThresholdEntity;

/**
 * *************************************
 * *   @author: 野狼上校               **
 * *   @since: 2024-07-18 16:42       **
 * *   @version: 1.0                  **
 * *************************************
 * <p>
 *     与硬件交互的服务接口
 */
public interface FunctionService extends IService<FunctionEntity> {
    /**
     * 通用
     * </p>
     * 执行单条操作命令
     * </p>
     *      (关闭/开启)采集
     *      (开启/关闭/清除)报警
     *      查询阈值
     * @param deviceGuid 设备Id
     * @param functionJson 命令 （Json字符串）
     */
    Boolean functionInsert(String deviceGuid, String functionJson);

    /** 通用
     * </p>
     * 执行单条修改阈值命令
     * @param deviceGuid 设备Id
     * @param functionJson 命令 （Json字符串）
     * @param threshold 新的阈值
     */
    Boolean functionInsert(String deviceGuid, String functionJson, Double threshold);

    /**
     * 关闭/开启采集
     * </p>
     * @param deviceGuid 设备GUID
     * @param operateType 操作类型 (0: 关闭采集， 1: 开启采集)
     */
    Boolean collectOperate(String deviceGuid, Integer operateType);

    /**
     * 关闭/开启/清除报警
     * @param deviceGuid 设备GUID
     * @param operateType 操作类型 (0: 关闭报警， 1: 开启报警, 2: 清除报警)
     */
    Boolean alarmOperate(String deviceGuid, Integer operateType);

    /**
     * 修改阈值
     */
    Boolean updateThreshold(ThresholdEntity thresholdEntity);
}
